package com.itheima.d0_feedback.feedback;
/*
群聊的编程思维跟不上，能再说说吗？
    客户端连接ServerSocket后会得到对应的Socket对象，用来和客户端进行通讯。
    客户端连接服务端得到的Socket对象，保存到集合中
    当某一个客户端发消息给服务端时，服务端会将这个消息转发给其他客户端。以实现群聊效果。

“群聊”案例当中，用户界面看到的消息都是都是以客户端的名义发出去的，现在我想要知道具体是哪个IP发的消息，我应该这么做？
    socket.getRemoteSocketAddress() 可以获取对方的IP和端口

同步代码块判断同步锁是否是同一对象，使用的是对象的equals方法？
    要求同一个对象，地址相同。 == 比较地址


客户端和服务端都可以发送和接收消息是吗
    是的

1. 重写hasCode为什么造成哈希加速?
    重写hashcode方法后，哈希值是由属性值生成的。两个对象如果属性值一样，意味着计算出来的哈希值一样的。
    存入到哈希表结构时，会快速定位哈希系统位置，快速与当前桶中的数据进行比较。
    减少比较次数，提高去重的效率。


2.socket.getRemoteSocketAddress()   这个getRemoteSocketAddress()方法是干啥的,  为啥要通过Socket对象调用?

    Socket socket = serverSocket.accept();//接受客户端的连接，客户端的一些信息回保存到Socket对象中。

    在服务端可以使用socket对象来获取，客户端对应IP和端口。
    因为这是Socket的方法，Socket中包含了客户端对应的信息。

3.  TCP服务器端, ServerSocket()构造器只是注册一个端口, 而accept方法才是获得Socket类型的对象, 是用来跟客户端进行交互的
    ServerSocket对象的创建，意味着开启了一个服务端。
    开启了服务端之后就可以等待客户端的连接（accept方法）并得到Socket对象，可以与客户端进行通讯
    客户端和服务端都是用Socket进行通讯，
    如果要发送数据使用：
        socket.getOutputStream();
    如果要接受数据：
        socket.getInputStream();

 */
public class Demo01 {

}
